package com.dq.service.orders;

import com.dq.exception.customException.AdminException;
import com.dq.controller.in.request.ActivityOrderAdd;
import com.dq.controller.in.request.OrdersPayAdd;
import com.dq.controller.in.request.TakeItInCartRequest;
import com.dq.domain.activity.Activity;
import com.dq.domain.goods.ShoppingBag;
import com.dq.domain.orders.UserOrder;
import com.dq.domain.orders.info.OrderInfo;
import com.dq.domain.org.Org;
import com.dq.domain.sys.user.user.base.SysUser;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author luchangtong
 * @Date 2019/11/27 15:27
 */
public interface OrdersService {
    UserOrder submitOrder(OrdersPayAdd ordersPayAdd, SysUser sysUser, Long expressTime)throws AdminException;
    UserOrder.Vo takeItInCart(List<ShoppingBag> bags, Org org, String note, Long expressTime, TakeItInCartRequest takeItInCartRequest) throws AdminException;
    UserOrder.Vo takeIt(List<OrderInfo> infos, Org org, String note, Long expressTime,TakeItInCartRequest takeItInCartRequest) throws AdminException;
    UserOrder submitActivityOrder(Activity activity, SysUser sysUser, Long expressTime, ActivityOrderAdd activityOrderAdd) throws AdminException;
    /*--------------------------------收银端下单----------------------------*/
    void takeItInStaffUserCart(List<ShoppingBag> bags, Org org, String note, Long expressTime, List<Long> staffUserIds, String giveProject, Long giveIntegral, Long wxUserId, Integer flag, BigDecimal arrearsPrice, BigDecimal discountPrice);
    void takeItStaffUser(List<OrderInfo> infos, Org org, String note, Long expressTime, List<Long> staffUserIds, String giveProject, Long giveIntegral, Long wxUserId, Integer flag, BigDecimal arrearsPrice, BigDecimal sumPrice, BigDecimal discountPrice);
}
